﻿using System;
using System.IO;
using System.Collections.Generic;

using SBPweb.Modules.Modularity;

namespace SBPweb.MediaCenter.Common.Services
{

    public interface IListOpenerService : IOpenerService
    {

        void OpenPrevious();

        void OpenNext();

        ListRepeatModes RepeatMode
        {
            get;
            set;
        }

        bool IsPreviousAvailable
        {
            get;
        }

        bool IsNextAvailable
        {
            get;
        }

    }

    public enum ListRepeatModes
    {
        NoRepeat,
        RepeatItem,
        RepeatAll
    }

    public interface IListOpenerService<TItem> : IListOpenerService
    {

        void Open(IList<TItem> list);

    }

    public interface IUriListOpenerService : IListOpenerService<Uri>, IOpenerService<Uri>
    {

    }

    public interface IStreamListOpenerService : IListOpenerService<Stream>, IOpenerService<Stream>
    {

    }

}